if (!jsx3.lang.Class.forName("ux.cdb.admin.provRcpPkg.ContractRcpPkg")) {
    /**
     * Define the <code>name of class</code> class.
     * This class inherit from <code>jsx3.gui.Block<code> GUI class.
     */
    jsx3.Class.defineClass(
            "ux.cdb.admin.provRcpPkg.ContractRcpPkg",
            ux.megatron.gui.Block,
            null,
            function (objRoot) {
                /**
                 * This method will be called after UI file has deserialized.
                 */
                objRoot.prototype.onAfterDeserialize = function() {
                }                
                objRoot.prototype.onContractPkgSelected = function(objMtx, objEVENT, strRECORDID, objCOLUMN){
                    this.showContract(strRECORDID);
                };
                objRoot.prototype.showContract = function(strRECORDID){
                    var _showContract = function(){
                        //TODO
                    };
                    if(!this.getDescendantOfName("blk_Contract")){
                        this.loadContract(_showContract);
                    } else {
                        this.getDescendantOfName("blk_Contract").setDisplay(jsx3.gui.Block.DISPLAYBLOCK);
                    }
                };
                objRoot.prototype.loadContract = function(callback){
                    var me = this;
                    ux.megatron.Main.loadUIResourceAsync(this.getDescendantOfName("pan_Contract"), "ux.cdb.admin", "ux/cdb/admin/provRcpPkg/ui/Contract.xml", me, callback);
                };
            }
    );
}